package com.cls.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cls.business.entity.ClassDistributionRecord;
import com.cls.common.entity.QueryRequest;
import com.cls.system.entity.Expert;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 课题评审记录表 Service接口
 *
 * @author slx
 * @date 2021-03-02 15:54:14
 */
public interface IClassDistributionRecordService extends IService<ClassDistributionRecord> {
    /**
     * 查询（分页）
     *
     * @param request                 QueryRequest
     * @param classDistributionRecord classDistributionRecord
     * @return PageInfo<ClassDistributionRecord>
     */
    PageInfo<ClassDistributionRecord> findClassDistributionRecords(QueryRequest request, ClassDistributionRecord classDistributionRecord);

    /**
     * 查询 根据 planid
     *
     * @param classDistributionRecord classDistributionRecord
     * @return List<ClassDistributionRecord>
     */
    PageInfo<ClassDistributionRecord> findClassDistributionRecordsByPlanId(QueryRequest request, ClassDistributionRecord classDistributionRecord);


    PageInfo<ClassDistributionRecord> findRecordsAndYearByExpertId(QueryRequest request, ClassDistributionRecord classDistributionRecord);

    /**
     * 查询 根据 ExpertId
     *
     * @param classDistributionRecord classDistributionRecord
     * @return List<ClassDistributionRecord>
     */
    PageInfo<Expert> findClassDistributionRecordsByExpertId(QueryRequest request, Expert expert, Long planId);

    /**
     * 新增
     *
     * @param classDistributionRecord classDistributionRecord
     */
    void createClassDistributionRecord(ClassDistributionRecord classDistributionRecord);

    /**
     * 修改
     *
     * @param classDistributionRecord classDistributionRecord
     */
    void updateClassDistributionRecord(ClassDistributionRecord classDistributionRecord);

    /**
     * 删除
     *
     * @param ids ids
     */
    void deleteClassDistributionRecords(String[] ids);


    void addBatchAndCreatUser(List<Expert> experts, Long planId, String year);
}
